Skill

panic! ম্যাক্রো এবং Unrecoverable Errors

Error Handling (এরর হ্যান্ডলিং) - রাস্ট (Rust) - Computer Programming

250

panic! ম্যাক্রো

রাস্টে panic! একটি ম্যাক্রো যা প্রোগ্রামের চলাকালীন অবস্থা যদি এমন কিছু ঘটে যা সিস্টেমে unrecoverable (অগ্রাহ্যযোগ্য) ত্রুটি তৈরি করে, তাহলে এটি প্রোগ্রামটি থামিয়ে দেয়। panic! সাধারণত তখন ব্যবহৃত হয় যখন কোনো অবস্থা এমন থাকে যে, প্রোগ্রাম চলতে না পারার মতো সমস্যা হয়ে থাকে এবং তারপরে এর কাজ চলতে থাকা আর নিরাপদ থাকে না। এটি প্রোগ্রামের একেবারে শেষের দিকে চলে যায় এবং রানটাইমের শেষে একটি ত্রুটি বার্তা দেখিয়ে প্রোগ্রামটি থামিয়ে দেয়।

panic! ব্যবহারের উদাহরণ:

fn main() {
    let number = -5;
    if number < 0 {
        panic!("Negative numbers are not allowed: {}", number);
    }
}

এখানে, number যদি ০ এর কম হয়, তবে panic! ম্যাক্রোটি চলবে এবং প্রোগ্রামটি ত্রুটি বার্তা সহ থেমে যাবে।

আউটপুট:

thread 'main' panicked at 'Negative numbers are not allowed: -5', src/main.rs:3:9

panic! ম্যাক্রোটি একটি run-time error ঘটায়, যা সিস্টেমের জন্য একটি অপরিহার্য অবস্থা হতে পারে। যখন প্রোগ্রামে কোনো অগ্রাহ্যযোগ্য ত্রুটি ঘটবে, তখন panic! স্বয়ংক্রিয়ভাবে থ্রো হয় এবং প্রোগ্রাম থেমে যায়।


Unrecoverable Errors (অগ্রাহ্যযোগ্য ত্রুটি)

রাস্টে unrecoverable errors সেই ত্রুটিগুলি যা শুধুমাত্র panic! ম্যাক্রোর মাধ্যমে মোকাবেলা করা হয়। এগুলি সাধারণত এমন অবস্থায় ঘটে, যেখানে কোনো অবস্থা পুনরুদ্ধার করা সম্ভব নয় এবং প্রোগ্রাম চালিয়ে যাওয়া নিরাপদ নয়। একে fatal errors বা critical errors বলা হয়।

Unrecoverable Errors এর উদাহরণ:

  1. Invalid input: যদি কোনো ফাংশনে অবৈধ ইনপুট আসে এবং সেই ইনপুট থেকে কোড চলতে না পারে।
  2. File system error: কোনো ফাইল সিস্টেমের জন্য সমস্যা, যেমন ফাইল খুঁজে না পাওয়া বা ফাইল মুছে যাওয়া।
  3. Index out of bounds: যখন অ্যারে বা ভেক্টরের মধ্যে এমন একটি ইনডেক্স অ্যাক্সেস করা হয়, যা সেখানে উপস্থিত নেই।

Unrecoverable Error Example (Array Index Out of Bounds):

fn main() {
    let arr = [1, 2, 3];
    let index = 10;
    let element = arr[index];  // This will panic because the index is out of bounds
    println!("The element is: {}", element);
}

এখানে, arr[10] অ্যাক্সেস করতে গেলে panic! ম্যাক্রোটি ট্রিগার হবে, কারণ অ্যারের সাইজ কেবল ৩টি উপাদান (index 0, 1, 2) ধারণ করে। এটি রানটাইমে একটি অগ্রাহ্যযোগ্য ত্রুটি ঘটায়।

আউটপুট:

thread 'main' panicked at 'index out of bounds: the len is 3 but the index is 10', src/main.rs:4:13

এই ধরনের ত্রুটিতে প্রোগ্রাম আর চালানো সম্ভব হয় না, তাই রাস্ট panic! ম্যাক্রো ব্যবহারের মাধ্যমে প্রোগ্রামটিকে থামিয়ে দেয়।


panic! এবং Unrecoverable Errors এর ব্যবহারের জায়গা

  • panic! ব্যবহৃত হয় তখন, যখন কোনো ত্রুটি ঘটে যা প্রোগ্রামটির নিরাপত্তা বা কার্যকারিতা বিপর্যস্ত করে এবং পুনরুদ্ধার করা সম্ভব নয়।
  • এই ধরনের ত্রুটির ক্ষেত্রে সিস্টেম স্থিতিশীলতা বজায় রাখতে প্রোগ্রামটিকে বন্ধ করা হয়।

কিন্তু মনে রাখতে হবে, panic! ম্যাক্রো ব্যবহারের ফলে প্রোগ্রাম থেমে যায় এবং কোনো ধরনের পুনরুদ্ধার সম্ভব হয় না। তাই এটি ব্যবহৃত হওয়ার সময় সতর্ক থাকতে হয়।


Recoverable Errors (পুনরুদ্ধারযোগ্য ত্রুটি) এবং Result

যখন একটি ত্রুটি পুনরুদ্ধারযোগ্য হয়, অর্থাৎ আপনি সেই ত্রুটিকে ঠিক করতে বা প্রোগ্রাম চালিয়ে যেতে চান, তখন Result টাইপ ব্যবহৃত হয়। এটি সাধারণত I/O operations, file handling, এবং network calls এর ক্ষেত্রে ব্যবহৃত হয়। এটি একটি enum যা দুটি ভ্যালু ধারণ করতে পারে: Ok(T) এবং Err(E)Result ব্যবহৃত হলে প্রোগ্রামটি বন্ধ হবে না, বরং ত্রুটির সাথে মোকাবিলা করে চলতে পারে।


সারাংশ

রাস্টের panic! ম্যাক্রোটি ব্যবহার করা হয় unrecoverable errors মোকাবিলা করতে, যখন প্রোগ্রামটি আর নিরাপদভাবে চলতে পারে না। এটি সাধারণত ত্রুটির সম্মুখীন হলে প্রোগ্রাম বন্ধ করে দেয় এবং রানটাইম ত্রুটি বার্তা দেখায়। এই ব্যবস্থায়, আপনি প্রোগ্রামটির নিরাপত্তা এবং সঠিকতার জন্য নিশ্চিত করতে পারেন যে, কোনো পরিস্থিতিতে সিস্টেমে ভুল বা অবৈধ কাজ চলতে না পারে।

Content added By
Promotion

Are you sure to start over?

Loading...